home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / StandardFile.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  9.9 KB  |  309 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1990-1995, 1997-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT StandardFile;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __STANDARDFILE__}
  28. {$SETC __STANDARDFILE__ := 1}
  29.  
  30. {$I+}
  31. {$SETC StandardFileIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __DIALOGS__}
  38. {$I Dialogs.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __FILES__}
  41. {$I Files.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. CONST
  51.                                                                 {  resource IDs of pre-7.0 get and put dialogs  }
  52.     putDlgID                    = -3999;
  53.     getDlgID                    = -4000;
  54.  
  55.                                                                 {  item offsets of pre-7.0 get and put dialogs  }
  56.     putSave                        = 1;
  57.     putCancel                    = 2;
  58.     putEject                    = 5;
  59.     putDrive                    = 6;
  60.     putName                        = 7;
  61.     getOpen                        = 1;
  62.     getCancel                    = 3;
  63.     getEject                    = 5;
  64.     getDrive                    = 6;
  65.     getNmList                    = 7;
  66.     getScroll                    = 8;
  67.  
  68.                                                                 {  resource IDs of 7.0 get and put dialogs  }
  69.     sfPutDialogID                = -6043;
  70.     sfGetDialogID                = -6042;
  71.  
  72.                                                                 {  item offsets of 7.0 get and put dialogs  }
  73.     sfItemOpenButton            = 1;
  74.     sfItemCancelButton            = 2;
  75.     sfItemBalloonHelp            = 3;
  76.     sfItemVolumeUser            = 4;
  77.     sfItemEjectButton            = 5;
  78.     sfItemDesktopButton            = 6;
  79.     sfItemFileListUser            = 7;
  80.     sfItemPopUpMenuUser            = 8;
  81.     sfItemDividerLinePict        = 9;
  82.     sfItemFileNameTextEdit        = 10;
  83.     sfItemPromptStaticText        = 11;
  84.     sfItemNewFolderUser            = 12;
  85.  
  86.                                                                 {  pseudo-item hits for use in DlgHook  }
  87.     sfHookFirstCall                = -1;
  88.     sfHookCharOffset            = $1000;
  89.     sfHookNullEvent                = 100;
  90.     sfHookRebuildList            = 101;
  91.     sfHookFolderPopUp            = 102;
  92.     sfHookOpenFolder            = 103;                            {  the following are only in system 7.0+  }
  93.     sfHookLastCall                = -2;
  94.     sfHookOpenAlias                = 104;
  95.     sfHookGoToDesktop            = 105;
  96.     sfHookGoToAliasTarget        = 106;
  97.     sfHookGoToParent            = 107;
  98.     sfHookGoToNextDrive            = 108;
  99.     sfHookGoToPrevDrive            = 109;
  100.     sfHookChangeSelection        = 110;
  101.     sfHookSetActiveOffset        = 200;
  102.  
  103.  
  104. { the refcon field of the dialog record during a
  105.  modalfilter or dialoghook contains one of the following }
  106.     sfMainDialogRefCon            = 'stdf';
  107.     sfNewFolderDialogRefCon        = 'nfdr';
  108.     sfReplaceDialogRefCon        = 'rplc';
  109.     sfStatWarnDialogRefCon        = 'stat';
  110.     sfLockWarnDialogRefCon        = 'lock';
  111.     sfErrorDialogRefCon            = 'err ';
  112.  
  113.  
  114.  
  115. TYPE
  116.     SFReplyPtr = ^SFReply;
  117.     SFReply = RECORD
  118.         good:                    BOOLEAN;
  119.         copy:                    BOOLEAN;
  120.         fType:                    OSType;
  121.         vRefNum:                INTEGER;
  122.         version:                INTEGER;
  123.         fName:                    StrFileName;                            {  a Str63 on MacOS  }
  124.     END;
  125.  
  126.     StandardFileReplyPtr = ^StandardFileReply;
  127.     StandardFileReply = RECORD
  128.         sfGood:                    BOOLEAN;
  129.         sfReplacing:            BOOLEAN;
  130.         sfType:                    OSType;
  131.         sfFile:                    FSSpec;
  132.         sfScript:                ScriptCode;
  133.         sfFlags:                INTEGER;
  134.         sfIsFolder:                BOOLEAN;
  135.         sfIsVolume:                BOOLEAN;
  136.         sfReserved1:            LONGINT;
  137.         sfReserved2:            INTEGER;
  138.     END;
  139.  
  140. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  141.     ActivationOrderListPtr                = ^INTEGER;
  142. {$IFC TYPED_FUNCTION_POINTERS}
  143.     DlgHookProcPtr = FUNCTION(item: INTEGER; theDialog: DialogPtr): INTEGER;
  144. {$ELSEC}
  145.     DlgHookProcPtr = ProcPtr;
  146. {$ENDC}
  147.  
  148. {$IFC TYPED_FUNCTION_POINTERS}
  149.     FileFilterProcPtr = FUNCTION(pb: CInfoPBPtr): BOOLEAN;
  150. {$ELSEC}
  151.     FileFilterProcPtr = ProcPtr;
  152. {$ENDC}
  153.  
  154. { the following also include an extra parameter of "your data pointer" }
  155. {$IFC TYPED_FUNCTION_POINTERS}
  156.     DlgHookYDProcPtr = FUNCTION(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER;
  157. {$ELSEC}
  158.     DlgHookYDProcPtr = ProcPtr;
  159. {$ENDC}
  160.  
  161. {$IFC TYPED_FUNCTION_POINTERS}
  162.     ModalFilterYDProcPtr = FUNCTION(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN;
  163. {$ELSEC}
  164.     ModalFilterYDProcPtr = ProcPtr;
  165. {$ENDC}
  166.  
  167. {$IFC TYPED_FUNCTION_POINTERS}
  168.     FileFilterYDProcPtr = FUNCTION(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN;
  169. {$ELSEC}
  170.     FileFilterYDProcPtr = ProcPtr;
  171. {$ENDC}
  172.  
  173. {$IFC TYPED_FUNCTION_POINTERS}
  174.     ActivateYDProcPtr = PROCEDURE(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr);
  175. {$ELSEC}
  176.     ActivateYDProcPtr = ProcPtr;
  177. {$ENDC}
  178.  
  179.     DlgHookUPP = UniversalProcPtr;
  180.     FileFilterUPP = UniversalProcPtr;
  181.     DlgHookYDUPP = UniversalProcPtr;
  182.     ModalFilterYDUPP = UniversalProcPtr;
  183.     FileFilterYDUPP = UniversalProcPtr;
  184.     ActivateYDUPP = UniversalProcPtr;
  185.  
  186. CONST
  187.     uppDlgHookProcInfo = $000003A0;
  188.     uppFileFilterProcInfo = $000000D0;
  189.     uppDlgHookYDProcInfo = $00000FA0;
  190.     uppModalFilterYDProcInfo = $00003FD0;
  191.     uppFileFilterYDProcInfo = $000003D0;
  192.     uppActivateYDProcInfo = $000036C0;
  193.  
  194. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  195.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  196.     INLINE $2E9F;
  197.     {$ENDC}
  198.  
  199. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  200.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  201.     INLINE $2E9F;
  202.     {$ENDC}
  203.  
  204. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  205.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  206.     INLINE $2E9F;
  207.     {$ENDC}
  208.  
  209. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  210.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  211.     INLINE $2E9F;
  212.     {$ENDC}
  213.  
  214. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $2E9F;
  217.     {$ENDC}
  218.  
  219. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  220.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  221.     INLINE $2E9F;
  222.     {$ENDC}
  223.  
  224. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  225.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  226.     INLINE $205F, $4E90;
  227.     {$ENDC}
  228.  
  229. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  230.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  231.     INLINE $205F, $4E90;
  232.     {$ENDC}
  233.  
  234. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  235.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  236.     INLINE $205F, $4E90;
  237.     {$ENDC}
  238.  
  239. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  240.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  241.     INLINE $205F, $4E90;
  242.     {$ENDC}
  243.  
  244. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  245.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  246.     INLINE $205F, $4E90;
  247.     {$ENDC}
  248.  
  249. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  250.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  251.     INLINE $205F, $4E90;
  252.     {$ENDC}
  253.  
  254. TYPE
  255.     SFTypeList                            = ARRAY [0..3] OF OSType;
  256. {
  257.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  258.     For C, this will add "const" and make it an in-only parameter.
  259.     For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  260.  
  261.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  262. }
  263.     ConstSFTypeListPtr                    = ^OSType;
  264.  
  265. PROCEDURE SFPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply);
  266.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  267.     INLINE $3F3C, $0001, $A9EA;
  268.     {$ENDC}
  269. PROCEDURE SFGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  271.     INLINE $3F3C, $0002, $A9EA;
  272.     {$ENDC}
  273. PROCEDURE SFPPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $3F3C, $0003, $A9EA;
  276.     {$ENDC}
  277. PROCEDURE SFPGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $3F3C, $0004, $A9EA;
  280.     {$ENDC}
  281. PROCEDURE StandardPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply);
  282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  283.     INLINE $3F3C, $0005, $A9EA;
  284.     {$ENDC}
  285. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  286.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  287.     INLINE $3F3C, $0006, $A9EA;
  288.     {$ENDC}
  289. PROCEDURE CustomPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  291.     INLINE $3F3C, $0007, $A9EA;
  292.     {$ENDC}
  293. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $3F3C, $0008, $A9EA;
  296.     {$ENDC}
  297. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  298.  
  299. {$ALIGN RESET}
  300. {$POP}
  301.  
  302. {$SETC UsingIncludes := StandardFileIncludes}
  303.  
  304. {$ENDC} {__STANDARDFILE__}
  305.  
  306. {$IFC NOT UsingIncludes}
  307.  END.
  308. {$ENDC}
  309.